/*
 * Powered By dico
 * Since 2017 - 2018
 */
package com.seeyoui.kensite.framework.oa.applyActivity.domain;

import java.util.Map;

import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.seeyoui.kensite.common.base.domain.ActEntity;
import com.seeyoui.kensite.common.base.domain.DataEntity;
import com.seeyoui.kensite.common.util.excel.annotation.ExcelField;

/**
 * ApplyActivity
 * @author dico
 * @version 2.0
 * @since 1.0
 * @date 2018-01-05
 */

@JsonIgnoreProperties(ignoreUnknown = true)
public class ApplyActivity extends ActEntity<ApplyActivity> {
	private static final long serialVersionUID = 1L;

	@ExcelField(title="ID", type=1, align=2, sort=7, mod="apply_activity|BIND_ID")
	private String bindId;//ID
	@ExcelField(title="活动名称", type=1, align=2, sort=8, mod="apply_activity|NAME")
	private String name;//活动名称
	@ExcelField(title="活动简介", type=1, align=2, sort=9, mod="apply_activity|BRIEF_INTROUDCTION")
	private String briefIntroudction;//活动简介
	@ExcelField(title="活动地址", type=1, align=2, sort=10, mod="apply_activity|ADDRESS")
	private String address;//活动地址
	@ExcelField(title="部门id",mod="apply_activity|DEPARTMENT_ID")
	private String departmentId;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ExcelField(title="开始时间", type=1, align=2, sort=11, mod="apply_activity|START_TIME")
	private java.util.Date startTime;//开始时间
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ExcelField(title="结束时间", type=1, align=2, sort=12, mod="apply_activity|END_TIME")
	private java.util.Date endTime;//结束时间

	@ExcelField(title="类型：三会一课,党员活动",mod="apply_activity|TYPE")
	private String type;

	@ExcelField(title="联系人",mod="apply_activity|CONTACT")
	private String contact;
	@ExcelField(title="联系电话",mod="apply_activity|CONTACT_MOBILE")
	private String contactMobile;

	@ExcelField(title="是否签到",mod="apply_activity|IS_CHECKIN")
	private String isCheckin;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ExcelField(title="签到开始时间",mod="apply_activity|CHECKIN_START_TIME")
	private java.util.Date checkinStartTime;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ExcelField(title="签到结束时间", mod="apply_activity|CHECKIN_END_TIME")
	private java.util.Date checkinEndTime;
	@ExcelField(title="活动状态",mod="apply_activity|STATE")
	private String state;
	@ExcelField(title="审批状态",mod="apply_activity|APPLY_SATE")
	private String applySate;
	@ExcelField(title="主办机构",mod="apply_activity|ORGAN")
	private String organ;
	
	//-- 临时属性 --//
	// 流程任务
	private Task task;
	//流程参数
	private Map<String, Object> variables;
	// 运行中的流程实例
	private ProcessInstance processInstance;
	// 历史的流程实例
	private HistoricProcessInstance historicProcessInstance;
	// 流程定义
	private ProcessDefinition processDefinition;
	
	public String getBindId() {
		return bindId;
	}
	public void setBindId(String bindId) {
		this.bindId = bindId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getBriefIntroudction() {
		return briefIntroudction;
	}
	public void setBriefIntroudction(String briefIntroudction) {
		this.briefIntroudction = briefIntroudction;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getDepartmentId() {
		return departmentId;
	}
	public void setDepartmentId(String departmentId) {
		this.departmentId = departmentId;
	}
	public java.util.Date getStartTime() {
		return startTime;
	}
	public void setStartTime(java.util.Date startTime) {
		this.startTime = startTime;
	}
	public java.util.Date getEndTime() {
		return endTime;
	}
	public void setEndTime(java.util.Date endTime) {
		this.endTime = endTime;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getContact() {
		return contact;
	}
	public void setContact(String contact) {
		this.contact = contact;
	}
	public String getContactMobile() {
		return contactMobile;
	}
	public void setContactMobile(String contactMobile) {
		this.contactMobile = contactMobile;
	}
	public String getIsCheckin() {
		return isCheckin;
	}
	public void setIsCheckin(String isCheckin) {
		this.isCheckin = isCheckin;
	}
	public java.util.Date getCheckinStartTime() {
		return checkinStartTime;
	}
	public void setCheckinStartTime(java.util.Date checkinStartTime) {
		this.checkinStartTime = checkinStartTime;
	}
	public java.util.Date getCheckinEndTime() {
		return checkinEndTime;
	}
	public void setCheckinEndTime(java.util.Date checkinEndTime) {
		this.checkinEndTime = checkinEndTime;
	}
	public String getState() {
		return state;
	}
	public void setState(String state) {
		this.state = state;
	}
	public String getApplySate() {
		return applySate;
	}
	public void setApplySate(String applySate) {
		this.applySate = applySate;
	}
	public String getOrgan() {
		return organ;
	}
	public void setOrgan(String organ) {
		this.organ = organ;
	}
	public Task getTask() {
		return task;
	}
	public void setTask(Task task) {
		this.task = task;
	}
	public Map<String, Object> getVariables() {
		return variables;
	}
	public void setVariables(Map<String, Object> variables) {
		this.variables = variables;
	}
	public ProcessInstance getProcessInstance() {
		return processInstance;
	}
	public void setProcessInstance(ProcessInstance processInstance) {
		this.processInstance = processInstance;
	}
	public HistoricProcessInstance getHistoricProcessInstance() {
		return historicProcessInstance;
	}
	public void setHistoricProcessInstance(
			HistoricProcessInstance historicProcessInstance) {
		this.historicProcessInstance = historicProcessInstance;
	}
	public ProcessDefinition getProcessDefinition() {
		return processDefinition;
	}
	public void setProcessDefinition(ProcessDefinition processDefinition) {
		this.processDefinition = processDefinition;
	}

}